home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / misc / emu / ATUtilities.lha / ATUtilities / BASIC / VISA.BAS < prev   
BASIC Source File  |  2000-09-26  |  2KB  |  120 lines

  1. $INCLUDE "REGNAMES.INC"
  2. DEFINT a-Z
  3.  
  4. REG %AX,(6*256)
  5. CALL INTERRUPT &H49
  6. janus=REG(%DI)
  7. IF di=-1 THEN
  8.  ?"FEHLER: Janus"
  9.  END
  10. END IF
  11.  
  12. n$="CC:Prgs/F11.cdat"+CHR$(0)
  13. DEF SEG = &HD400
  14. FOR i=1 TO LEN(n$)
  15.  POKE janus+i-1,ASC(MID$(n$,i,1))
  16. NEXT
  17. REG %AX,0
  18. REG %BX,1
  19. CALL INTERRUPT &H49
  20. file.okay=REG(%AX)
  21. file.fh=REG(%BX)
  22. IF file.okay<>10000 THEN
  23.  ?"FEHLER: File"
  24.  END
  25. END IF
  26.  
  27. ON BREAK GOTO ende
  28.  
  29. REG %AX,2*256
  30. REG %BX,file.fh
  31. REG %CX,8
  32. CALL INTERRUPT &H49
  33.  
  34. DEF SEG = &HD400
  35. w=(PEEK(janus+4)*256)+PEEK(janus+5)
  36. h=(PEEK(janus+6)*256)+PEEK(janus+7)
  37. s&=w*h
  38.  
  39. REG %AX,(&H4F*256)+2
  40. IF w=800 THEN
  41.  REG %BX,&H103
  42. ELSE
  43.  REG %BX,&H101
  44. END IF
  45. CALL INTERRUPT &H10
  46.  
  47. DEF SEG = &HD400
  48. FOR i=janus TO janus+(3*255)
  49.  POKE i,0
  50. NEXT
  51. REG %ES,&HD400
  52. REG %DX,janus
  53. REG %BX,0
  54. REG %CX,255
  55. REG %AX,(&H10*256)+&H12
  56. CALL INTERRUPT &H10
  57.  
  58. REG %AX,2*256
  59. REG %BX,file.fh
  60. REG %CX,16384
  61. CALL INTERRUPT &H49
  62. bytes=REG(%BX)
  63.  
  64. p&=0 : d&=0 : s=0
  65. WHILE d&<s&
  66.  
  67.  REG %BX,&HA000
  68.  REG %DX,p&
  69.  REG %CX,bytes
  70.  REG %AX,5*256
  71.  CALL INTERRUPT &H49
  72.  
  73.  p&=p&+bytes
  74.  d&=d&+bytes
  75.  
  76.  IF p&>65535 THEN
  77.   s=s+1
  78.   REG %AX,(&H4F*256)+5
  79.   REG %BX,0
  80.   REG %DX,s
  81.   CALL INTERRUPT &H10
  82.   p&=0
  83.  END IF
  84.  IF d&+16384>s& THEN l&=s&-d& ELSE l&=16384
  85.  REG %AX,2*256
  86.  REG %BX,file.fh
  87.  REG %CX,l&
  88.  CALL INTERRUPT &H49
  89.  bytes=REG(%BX)
  90. WEND
  91.  
  92. REG %AX,2*256
  93. REG %BX,file.fh
  94. REG %CX,3*255
  95. CALL INTERRUPT &H49
  96. bytes=REG(%BX)
  97.  
  98. IF bytes<>0 THEN
  99.  REG %ES,&HD400
  100.  REG %DX,janus
  101.  REG %BX,0
  102.  REG %CX,255
  103.  REG %AX,(&H10*256)+&H12
  104.  CALL INTERRUPT &H10
  105. END IF
  106.  
  107. ende:
  108. IF file.okay=10000 THEN
  109.  REG %AX,1*256
  110.  REG %BX,file.fh
  111.  CALL INTERRUPT &H49
  112. END IF
  113. BEEP
  114.  
  115. WHILE INKEY$="":WEND
  116. SCREEN 0
  117. CLS
  118. ?"<< Taste >>"
  119. END
  120.